package compilador.analisadorSemantico;

import java.util.HashMap;
import java.util.Map;

import compilador.analisadorLexico.Simbolo;

public class TabelaSimbolos {
	
	private Map<String, Simbolo> tabela;
	
	public TabelaSimbolos() {
		tabela = new HashMap<String, Simbolo>();
	}
	
	/**
	 * Adicionar um valor na tabela de simbolos.
	 * @param identificador
	 * @param simbolo
	 */
	public void adicionar(String identificador, Simbolo simbolo){
		tabela.put(identificador.toUpperCase(), simbolo);
	}
	
	/**
	 * Recupera um simbolo a partir do identificador.
	 * @param identificador
	 * @return A simbolo associado ao identificador passado como parametro.
	 */
	public Simbolo getSimbolo(String identificador) {
		return tabela.get(identificador.toUpperCase());
	}
	
	public boolean contem(String id) {
		return tabela.containsKey(id.toUpperCase());
	}

}
